Conversation
WoWaster
left a comment
There was a problem hiding this comment.
Общее замечание: вынесите всю логику в отдельные функции. Ну и посмотрите, какие комментарии правда нужны.
src/bracketBalance.c
Outdated
|
|
||
| int main() | ||
| { | ||
| int* stackForBrackets = calloc(100, sizeof(int)); // сделаем большой стек состоящий из 100 нулей |
There was a problem hiding this comment.
Писать комментарии --- отдельное искусство.
Но для начала есть два простых правила:
- Пишите комментарии над сущностью, которую комментируете.
- Если комментарий описывает ровно то, что написано в коде --- он не нужен.
src/bracketBalance.c
Outdated
| scanf("%100[^\n]", stringWithBrackets); // ввели строку (огранчение 100 символов) | ||
|
|
||
| int count = 0; // счетчик того, сколько позиций занято в стеке | ||
| char str1 = ' '; // здесь будут символы из строки |
There was a problem hiding this comment.
Почему эту переменную нельзя объявить внутри цикла?
Название переменной странное. Во-первых, она типа char, а называет как будто это строка. Во-вторых, слишком общее, поэтому Вам и захотелось написать комментарий.
src/bracketBalance.c
Outdated
| char str2 = '('; | ||
| char str3 = ')'; |
There was a problem hiding this comment.
Научитесь объявлять константы. Хотя здесь они ни к чему. У Вас str2 и str3 встречаются ниже в коде по одному разу.
src/bracketBalance.c
Outdated
|
|
||
| if (str1 == str2) // Ищем окрывающие скобки | ||
| { | ||
| stackForBrackets[count] = 2; // пусть 2 - это открывающая скобка |
There was a problem hiding this comment.
А если вдруг кто-то напишет в стек значение 42, что будет? Используйте максимально узкие типы. Здесь гораздо лучше бы подошел bool.
src/bracketBalance.c
Outdated
| count -= 1; | ||
| // этими действиями мы убрали закрытые скобки, будто их и не было | ||
| } else { | ||
|
|
There was a problem hiding this comment.
Тут какая-то лишняя строка
src/oneStringInAnother.c
Outdated
| { | ||
| bool flag = true; // Это значит, что все символы строк совпадают, но если хотя бы один символ будет отличаться, будем менять на 0 и выходить из цикла | ||
| for (int j = 0; j < lenForSmallerString; j++) { | ||
| if (listForBiggerString[i + j] != listForSmallerString[j]) { |
There was a problem hiding this comment.
А если i = lenForBiggerString-1, а j = lenForSmallerString? Какие данные мы будем читать?
There was a problem hiding this comment.
Я так понимаю, что те, которые просто дальше лежат в памяти и уже никак не относятся к моей программе... Исправлю!
src/zerosInMassive.c
Outdated
| // пусть массив задан в программе | ||
| int listWithNumbers[] = { 0, 1, 3, 0, 6, 0, 7, 4, 6, 2, 0, 0 }; | ||
| int countOfZeros = 0; | ||
| size_t lengthOfMassive = sizeof(listWithNumbers) / sizeof(int); |
There was a problem hiding this comment.
Massive --- это прилагательное! Array --- существительное.
src/oneStringInAnother.c
Outdated
| size_t lenForBiggerString = sizeof(listForBiggerString) / sizeof(char); | ||
| size_t lenForSmallerString = sizeof(listForSmallerString) / sizeof(char) - 1; // так как последний символ нулевой | ||
|
|
||
| int countingOfEntry = 0; // счетчик вхождений |
There was a problem hiding this comment.
entryCounter тогда уж. Counting обычно герундий
src/zerosInMassive.c
Outdated
| int main() | ||
| { | ||
| // пусть массив задан в программе | ||
| int listWithNumbers[] = { 0, 1, 3, 0, 6, 0, 7, 4, 6, 2, 0, 0 }; |
src/zerosInMassive.c
Outdated
| { | ||
| // пусть массив задан в программе | ||
| int listWithNumbers[] = { 0, 1, 3, 0, 6, 0, 7, 4, 6, 2, 0, 0 }; | ||
| int countOfZeros = 0; |
There was a problem hiding this comment.
Либо numberOfZeroes, либо zeroCounter
src/bracketBalance.c
Outdated
| { | ||
| //специальный счетчик, "(" это +1 ")" это -1. Если скобочная посл-ть правильная, counter == 0 | ||
| int counter = 0; | ||
| bool bracketsExist = false; |
There was a problem hiding this comment.
Эта переменная правда нужна? Неужели счётчика не хватает?
src/bracketBalance.c
Outdated
| int counter = 0; | ||
| bool bracketsExist = false; | ||
|
|
||
| for (int i = 0; i < 100; i++) { |
There was a problem hiding this comment.
Почему строго 100? Неужели если в строке будет 345 символов всю остальную логику нельзя будет использовать?
src/zerosInMassive.c
Outdated
| int main() | ||
| { | ||
| // пусть массив задан в программе | ||
| int ArrayWithNumbers[] = { 0, 1, 3, 0, 6, 0, 7, 4, 6, 2, 0, 0 }; |
There was a problem hiding this comment.
Почти :( тут с маленькой буквы
There was a problem hiding this comment.
Эту задачу я зачту, а Вы поправите.
src/oneStringInAnother.c
Outdated
|
|
||
| int entryCounter = 0; | ||
| // i - индекс эл-та с которого будем рассматривать большую строку | ||
| for (unsigned int i = 0; i < lenForBiggerString; i++) { |
There was a problem hiding this comment.
| for (unsigned int i = 0; i < lenForBiggerString; i++) { | |
| for (unsigned i = 0; i < lenForBiggerString; i++) { |
по стайлгайду
src/oneStringInAnother.c
Outdated
| for (unsigned int i = 0; i < lenForBiggerString; i++) { | ||
| bool flag = true; | ||
| for (unsigned int j = 0; j < lenForSmallerString; j++) { | ||
| if (i + j < lenForBiggerString) { |
There was a problem hiding this comment.
Это можно сделать проще. Рассматривайте i не от 0 до lenForBiggerString - 1, а меньше, тогда будет меньше проблем с границами.
…Homework_ into lesson_3_branch
|
Я изменила сообщение коммита и мне теперь выдает Merge branch 'lesson_3_branch' of github.com:yaprogrammer18-yanchi/C_Homework_ into lesson_3_branch... Можно я сделаю force push? :D |
WoWaster
left a comment
There was a problem hiding this comment.
Осталось отформатировать... :(
|
И в своих ветках делайте force-push сколько хотите. |
WoWaster
left a comment
There was a problem hiding this comment.
Я не понял, почему у Вас раздублировались файлы
Добавила файлы домашней работы от урока о Компиляции. Удалила папку самого урока чтобы не путаться. Теперь все файлы лежат только в src.